package com.dao;

import java.util.List;

import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;
import org.springframework.dao.DataAccessException;

import com.model.Parametro;
import com.query.ParametroQuery;

public class ParametroDAOImpl extends
		BaseHibernateDAO<Parametro, ParametroQuery> {

	@Override
	public Class<Parametro> getModelClass() {
		return Parametro.class;
	}

	/*
	 * Busca por código del parámetro
	 */
	@SuppressWarnings("unchecked")
	@Override
	public Parametro get(String query) throws DataAccessException {
		DetachedCriteria criteria = DetachedCriteria.forClass(Parametro.class);
		List<Parametro> list;

		criteria.add(Restrictions.eq("codigo", query));

		list = (List<Parametro>) getHibernateTemplate()
				.findByCriteria(criteria);

		if (list != null && list.size() > 0) {
			return list.get(0);
		}

		return null;
	}

	/*
	 * Busca por código del parámetro pero los que "empiezan con"
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<Parametro> getList(String query) {
		DetachedCriteria criteria = DetachedCriteria.forClass(Parametro.class);
		List<Parametro> list;

		criteria.add(Restrictions.ilike("codigo", query, MatchMode.START));

		list = (List<Parametro>) getHibernateTemplate()
				.findByCriteria(criteria);

		return list;
	}

}
